The invention relates to a method and an apparatus for controlling devices based on the HAVi standard (HAVi devices) by means of device control modules in an OSGi platform.
The IEEE (Institute of Electrical and Electronics Engineers, Inc.) is an international organization that, among other things, develops standards for electronic networks. IEEE 1394 is a serial bus system of the IEEE in which a variety of terminals (so-called nodes) are interconnected by means of either an electrical cable or an optical waveguide. A node can either be embodied as a terminal (a so-called leaf) or as a relay node (a so-called branch). The uppermost node is referred to as a root. The use of the different node types permits a suitable topology to be designed for a network. A leaf receives data packets and processes them if the target address of the packet coincides with its own. A branch must also transmit all packets that it receives at one port to all of the other ports.
According to IEEE 1394, the network is self-configuring, i.e. after being switched on or after a reset, all nodes transmit selected data about themselves into the network. These data are received by all nodes. A node can be designed in such a way that it can also take on additional administrative functions for the network (bus management). To that end, it collects all of the data regarding the other nodes, processes these data, and stores them internally in a suitable fashion. If a number of nodes have bus management capabilities, then a competition process is initiated from which one node emerges as the winner that then executes the bus management.
In addition to the methods described in the specifications of IEEE 1394, there is a bus-independent modification that has been specified under the name “home audio video interoperability” (HAVi) by a consortium of companies. HAVi is primarily conceived for use in an IEEE 1394 network and refers both to the sum of all devices that are controlled by one or more HAVi-based nodes within a closed network context using the methods described in the HAVi standard, and also to the network infrastructure required for this. Parts of the HAVi network can also be designed as devices without inherent HAVi functionality (so-called legacy devices). It is typical for HAVi networks to use high-speed network technologies (for example IEEE 1394, MOST, Ethernet; WLAN).
In particular, the HAVi specification describes the remote control of devices and/or functions of devices from any other point in the network.
To that end, a distributed model is described in which the control of the devices is executed by means of control modules, so-called “device control modules” (DCMs or DCM). Such a DCM runs as a software element (SE) on the device that is to execute the control functions in another device. Each DCM is specifically intended for a particular device or device class.
HAVi is based on the modular concept for a distributed system. The individual modules are represented by the software elements (SE). All SEs in the system have unique addresses. In most cases, SEs can be placed in both a central and a distributed arrangement. That is, there is a whole range of possible implementations, from an implementation with only one instance of a particular software element (for example a stream manager) to an implementation that provides such an instance in each device.
The so-called messaging system (MS) connects all of the SEs of a network to one another. As a rule, a network based on the HAVi standard (HAVi network) has the following SEs:
The registry contains data about every SE available in the network and about every available device and every available function. Data about the individual SEs are stored in the attributes. In addition to the predefined attributes, it is possible to add additional data. The architecture of the registry represents a distributed system i.e. each device can contain a part of the total registry; however, the registry can also be centrally located. The access to the registry is invisible since the various instances of the registry within the network automatically exchange the required data as needed.
The stream manager (SM) handles the establishment, disconnection, and administration of isochronous multimedia connections (audio data, video data) between SEs and/or devices. Like the registry, the SM can be embodied as a distributed system. Special commands are used to obtain the status of all of the SMs or of a particular SM.
Messages regarding status changes in the system are conveyed to the communication participants by the event manager.
The resource manager executes the allocation and freeing of resources (devices, SEs) and stores scheduled events (for example recordings executed by the video recorder).
The DCM manager (DM) is responsible for installing and uninstalling DCMs in correspondingly suitable devices. This makes it possible to provide a standardized method for installing DCMs in Java bytecode format. An installation of native code (binary) is not described in the standard, but can be added as a proprietary embodiment. If a number of HAVi devices with DMs are contained in a HAVi network, then there is a DM leader. In the event that a number of suitable DCMs are found for a newly added device, this DM leader decides which DCM is to be installed. The remaining DMs are referred to as DM followers.
A functional control module (FCM) is an SE that is used to control a functional unit of a device (for example a CD player or an FM tuner). A DCM (device control module) is thus comprised of the basic functions common to all DCMs and device-specific FCMs. These or the modules respectively required in a device constitute a standard application interface. This standard interface achieves an interoperability between applications and devices from different manufacturers (interoperability API).
The devices connected in a HAVi network belong to one of four possible categories. Among other things, these devices differ with regard to the availability of the above-described software elements. FAV (full audio video) devices and IAV (intermediate audio video) devices are device classes that have control possibilities. They can be used to control functionalities in other FAV and IAV devices as well as in BAV (base audio video) and LAV (legacy audio video) devices, which only function as controlled devices.
An FAV device has all of the above-mentioned SEs. In particular, it has a Java runtime environment, which can be used to dynamically install DCMs for devices that are newly added to the network.
An IAV device has a limited functionality. SMs, DMs, and RMs are not obligatory. Because the Java runtime environment is also missing, it is only possible to control devices that already have DCMs.
A BAV device cannot control any other devices, but provides a Java DCM, which, when installed on an FAV, serves to control the inherent functionality. In addition to this Java DCM, a BAV has no other HAVi SEs. The BAV device can transmit a Java DCM to an FAV device and this Java DCM is used therein to control the inherent functionality by means of a non-fixed protocol.
An LAV device is also a controllable device, but is not able to provide a Java DCM. The LAV device must already be precisely known to the controlling device (FAV or IAV device) in order to transmit the HAVi instructions in the form of commands that it will accept.
The open service gateway initiative (OSGi) is a non-commercial organization in which over 80 companies participate worldwide. The organization is involved in the development of a specification for a service platform in which services can be loaded for their runtime, activated, and unloaded again. The services are processed in the form of packets that are referred to as bundles. The particular feature of the platform is that it permits interaction between the modules of individual services comprised of different packets. The interoperability is achieved through the standardization of interfaces by the OSGi organization. In addition, the platform should permit access to devices connected in the local network and should support a connection to the global network (WAN). OSGi does not define the establishment of device connections and networks, but makes use of existing standards and abstracts them to the application plane on a functional basis by means of an interface specification. In addition, all administrative operations can also be executed remotely by means of a network connection. The design and specification of the service platform uses the service-supporting software technology Java.
The OSGi standard does not provide any mechanism for controlling devices of a HAVi network (HAVi devices) by means of DCMs of the OSGi framework. This would, however, be desirable since an OSGi platform can offer a more extensive and more flexible selection of possible device control modules (DCMs).